From U.S. Pat. No. 4,845,665 a simulation of computer program external interfaces is known. This patent describes a method for developing computer program external interfaces, understood as display screens and windows, by simulating the interfaces to allow prospective users or programmers to evaluate the design of the program, even before program code for the simulated program is created. The interfaces are executed as a simulated program. During execution, the interfaces may be altered; execution can then continue using the altered interfaces.
This known method concerns a facility to define and simulate user interfaces that are concerned with visible indications for human. It does not provide support for multiple user interface types in a general way.
With advanced programming systems it will be necessary to support different types of user interfaces. Those different types of user interfaces may for example be:
a panel oriented dialog interface with data entry panels, selection panels, and list panels which can be displayed on non-programmable or programmable terminals;
a direct manipulation interface where by use of, for example, a mouse device the user can directly manipulate the graphical representation of objects on the display screen;
a speech input and/or speech output interface;
a combination of the above interactive interfaces;
a command language interface for the experienced user.
Further types of user interfaces, e. g. touch screen interfaces, are known already today, still additional ones may show up in the future.
Often, it is desired to support multiple such user interface types by a programming System, for example, an operating system. For most programming systems it is also useful to be extendable towards the support of future new user interface types.
Today there exist different implementation techniques for the various user interface types. However, the separate implementation of each of those interface types has the following disadvantages:
it results in a high development effort;
it makes it more difficult to ensure consistency among the different types of user interface implementations. With a consistent implementation of the different user interface types the same set of input parameters is requested, with the same default values, and with identical validity checking;
it makes it difficult or almost impossible to combine and integrate the multiple user interface types, such that for example dynamic switching from one user interface type to another is possible.
In the past the afore-mentioned problems and disadvantages were not taken that seriously because the number of user interface types being considered was low. Certain advanced user interface types such as the direct manipulation interface and speech I/O are still only rarely used in general purpose programming systems. Furthermore with the few user-interface types being considered it was accepted to spent additional effort to solve part of the afore-mentioned problems and disadvantages.
The best example where in existing programming systems multiple, namely two, user interface types are supported concurrently are programming systems which support a command language interface beside a panel oriented dialog interface. Such examples are known from the IBM Operating Systems VSE, MVS, and VM. With a typical implementation of such programming systems the dialog interface is implemented on top of the command interface. This reduces the above mentioned problems and disadvantages, but this solution can only be extended with difficulty to support more than two user interface types. In addition, this method imposes restrictions on the flexibility of the superimposed interactive user interfaces. For example, all input parameters must be completely input by the user, before the underlying command interface may even be called.